// 组件不可以染指数据请求，页面级别组件当中看不到api
// 在action 中redux指定可以数据流动开始的地方
// 当有了redux之后，UI更纯粹
// 应用开发分成 UI + 数据管理

import { getBannerRequest, getRankListRequest,getArtistsListRequest } from "../api/request"

// store reducer defaultState -> action api -> reducer
// 重新计算 -> 通知connect UI 更新
// action 函数
export const changeBannerList=(data)=>({
    type:'CHANGE_BANNER',
    data
})
export const getBannerList=()=>{
    return (dispatch)=>{
        getBannerRequest().then(data=>{
            const action =changeBannerList(data.banners)
            dispatch(action)
        })
    }
}

export const changeRankList=(data)=>({
    // type 修改的tag
    type:'CHANGE_RANKLIST',
    data
})

export const getRankList=()=>{
    // api请求时
    return (dispatch)=>{
        // 做数据请求 排行榜信息请求
        getRankListRequest().then(data=>{
            console.log(data,'--',dispatch)
            const action=changeRankList(data.list)
            // 只有再次dispatch了这种action 格式的对象，才能触发reducer
            console.log(action)
            dispatch(action)
        })
    }
}
const changeArtistsList=(data)=>(
    {
        type:'CHANGE_ARTISTS',
        data
    }
)
export const getArtistsList=()=>{
    return (dispatch)=>{
        getArtistsListRequest().then(data=>{
        const action =changeArtistsList(data.artists)
        dispatch(action)
       })
    }
}